Środowisko pracy Arkusz Kalkulacyjny pozwala tworzyć i edytować arkusze kalkulacyjne, używać danych z arkusza kalkulacyjnego jako parametrów w modelu, wypełniać arkusz kalkulacyjny danymi pobranymi z modelu, wykonywać obliczenia i eksportować dane do innych aplikacji arkuszy kalkulacyjnych, takich jak LibreOffice czy Microsoft Excel.
Arkusz kalkulacyjny z komórkami wypełnionymi tekstem i ilościami
Należy pamiętać, że usunięcie lub usunięcie komórek z danymi może spowodować uszkodzenie arkusza kalkulacyjnego i modelu, jeśli opiera się on na arkuszu kalkulacyjnym. W takim przypadku użytkownik nie jest ostrzegany.
Wiersze i kolumny można wstawiać i usuwać, klikając prawym przyciskiem myszy nagłówek wiersza lub kolumny i wybierając odpowiednią opcję z menu podręcznego. Możliwe jest zaznaczenie najpierw wielu wierszy lub kolumn. Można to zrobić, przytrzymując klawisz Ctrl podczas zaznaczania nagłówków lub przytrzymując lewy przycisk myszy i przeciągając.
Zawartość komórki można edytować, zaznaczając komórkę i wprowadzając wartość w polu wprowadzania Treści w górnej części okna. Aby edytować komórkę na miejscu, zaznacz ją i naciśnij F2 lub kliknij dwukrotnie.
Aby usunąć jedną lub więcej komórek, zaznacz je i naciśnij Del. Spowoduje to usunięcie ich zawartości, właściwości i aliasów. Aby usunąć tylko zawartość komórki, należy ją edytować.
W komórkach arkuszy kalkulacyjnych programu FreeCAD można wykonywać operacje wycinania i kopiowania-wklejania. Do tych operacji można używać standardowych skrótów klawiszowych: Ctrl + X, Ctrl + C i Ctrl + V. Aby zaznaczyć wiele komórek, przytrzymaj klawisz Ctrl podczas zaznaczania lub przytrzymaj lewy przycisk myszy i przeciągnij, aby zaznaczyć prostokątny zakres komórek.
Operacje wycinania i kopiowania zapisują zawartość, właściwości i aliasy komórek w Schowku. Operacja wklejania powoduje zapisanie danych w taki sposób, że zawartość lewej górnej komórki zapisanych danych jest umieszczana w aktywnej komórce. Pozostała przechowywana zawartość jest umieszczana względem tej komórki. Formuły są odpowiednio aktualizowane. Aliasy są wklejane tylko wtedy, gdy są unikalne.
Właściwości komórki arkusza kalkulacyjnego można edytować, klikając komórkę prawym przyciskiem myszy i wybierając z menu podręcznego polecenie Właściwości .... Zostanie wyświetlone następujące okno dialogowe:
Zgodnie z informacjami na kartach można zmieniać następujące właściwości:
Komórka arkusza kalkulacyjnego może zawierać dowolny tekst, cyfry lub wyrażenie. Wyrażenia muszą zaczynać się od znaku równości "=".
Wyrażenia komórek mogą zawierać liczby, funkcje, odwołania do innych komórek i odwołania do właściwości modelu (ale przeczytaj akapit Obecne ograniczenia poniżej). Do komórek odwołujemy się za pomocą ich adresu utworzonego z indeksu kolumny (wielka litera) i wiersza (liczba), np B4, lub przez jej alias.
Uwaga: Wyrażenia komórek są traktowane przez FreeCAD jak kod programowania. Dlatego podczas edycji zawartości komórki można zauważyć, że nie jest ona zgodna z ustawieniami wyświetlania:
Odwołania do obiektów w modelu wyjaśniono w sekcji Odniesienia do danych CAD poniżej. Używanie wartości komórek arkusza kalkulacyjnego do definiowania właściwości modelu wyjaśniono w sekcji Dane arkusza kalkulacyjnego w wyrażeniach poniżej. Więcej informacji na temat wyrażeń i dostępnych funkcji można znaleźć na stronie Wyrażenia.
Dane znajdujące się w komórkach arkusza kalkulacyjnego mogą być wykorzystywane w wyrażeniach parametrów modelu CAD. W ten sposób arkusz kalkulacyjny może być używany jako źródło wartości parametrów używanych w całym modelu, efektywnie gromadząc wartości w jednym miejscu. Gdy wartości są zmieniane w arkuszu kalkulacyjnym, zostają one przekazane do całego modelu.
Podobnie, właściwości obiektów modelu CAD mogą być używane w wyrażeniach w komórkach arkusza kalkulacyjnego. Pozwala to na wykorzystanie w arkuszu kalkulacyjnym właściwości obiektu, takich jak objętość czy powierzchnia. Jeśli nazwa obiektu w modelu CAD zostanie zmieniona, zmiana ta zostanie automatycznie przeniesiona do wszystkich odwołań w wyrażeniach arkusza kalkulacyjnego używających zmienionej nazwy.
W dokumencie może być używany więcej niż jeden arkusz kalkulacyjny. Arkusz kalkulacyjny można zidentyfikować, używając jego nazwy lub etykiety.
FreeCAD automatycznie przypisuje unikalną nazwę do arkusza kalkulacyjnego podczas jego tworzenia. Nazwy te są zgodne z wzorcem Arkusz kalkulacyjny
, Arkusz kalkulacyjny001
, Arkusz kalkulacyjny002
i tak dalej. Nazwy tej nie można zmienić ręcznie i nie jest ona widoczna we właściwościach arkusza kalkulacyjnego. Można jej użyć do odwołania się do arkusza kalkulacyjnego w wyrażeniach (zobacz sekcję Dane arkusza kalkulacyjnego w wyrażeniach poniżej).
Etykieta arkusza kalkulacyjnego jest automatycznie ustawiana na nazwę arkusza podczas jego tworzenia. W przeciwieństwie do nazwy, etykietę można zmienić, np. w panelu właściwości lub za pomocą polecenia Zmień nazwę w menu podręcznym. Domyślnie FreeCAD nie akceptuje zduplikowanych etykiet, ale istnieje preferencja, aby to zmienić. Do arkuszy kalkulacyjnych ze zduplikowanymi etykietami w tym samym dokumencie nie można odwoływać się za pomocą ich etykiety.
FreeCAD sprawdza, czy nie występują zależności cykliczne. Zobacz sekcję obecne ograniczenia.
Jak wskazano powyżej, w wyrażeniach arkusza kalkulacyjnego można odwoływać się do danych z modelu CAD.
W poniższej tabeli przedstawiono kilka przykładów przy założeniu, że model ma cechę o nazwie "MyCube":
Dane CAD | Komórka w arkuszu | Rezultat |
---|---|---|
Długość parametryczna sześcianu środowiska Część | =MyCube.Length
|
Długość z jednostkami mm |
Objętość sześcianu | =MyCube.Shape.Volume
|
Objętość w mm³ bez jednostek |
Typ kształtu sześcianu | =MyCube.Shape.ShapeType
|
String: Solid |
Etykieta sześcianu | =MyCube.Label
|
String: MyCube |
Współrzędna X środka masy sześcianu | =MyCube.Shape.CenterOfMass.x
|
Współrzędna w mm bez jednostek |
Aby użyć danych arkusza kalkulacyjnego w innych częściach programu FreeCAD, zwykle tworzy się Wyrażenie, które odnosi się do arkusza kalkulacyjnego i komórki zawierającej dane, których chcesz użyć. Arkusze kalkulacyjne można identyfikować na podstawie nazwy lub etykiety, a komórki na podstawie adresu lub aliasu. Autouzupełnianie jest dostępne dla wszystkich form odwołań.
Arkusz kalkulacyjny według nazwy | Arkusz kalkulacyjny według etykiety | |
---|---|---|
Komórka według adresu | =Spreadsheet042.B5
|
=<<MySpreadsheet>>.B5
|
Komórka według aliasu | =Spreadsheet042.MyAlias
|
=<<MySpreadsheet>>.MyAlias
|
Zalecanym sposobem odwoływania się do danych arkusza kalkulacyjnego jest używanie etykiety arkusza i nazwy aliasu komórki. Bardziej szczegółowe omówienie zalet i wad poszczególnych trybów adresowania znajduje się w rozwiniętej sekcji poniżej.
Użycie etykiety arkusza kalkulacyjnego ma tę zaletę, że można ją dowolnie zmieniać, aby opisywała zawartość arkusza. Łatwiej jest również zidentyfikować używany arkusz kalkulacyjny, ponieważ tekst w wyrażeniu odpowiada etykiecie widocznej w widoku modelu i właściwości. Jeśli zdecydujesz się zmienić etykietę arkusza kalkulacyjnego, istniejące odwołania do zawartości arkusza zostaną zaktualizowane, więc nie zepsujesz swoich wyrażeń, zmieniając nazwę arkusza. Wewnętrzna nazwa arkusza kalkulacyjnego nie jest dostępna nigdzie poza edytorem wyrażeń, więc jeśli użyjesz wewnętrznej nazwy, a później zmienisz nazwę arkusza kalkulacyjnego, możesz mieć problem z odnalezieniem źródła danych wyrażenia.
Pamiętaj, że podczas tworzenia nowego arkusza kalkulacyjnego nazwa i etykieta są takie same, więc łatwo jest przypadkowo użyć nazwy arkusza zamiast etykiety. Prostym sposobem na uniknięcie takiej sytuacji jest nadanie arkuszowi sensownej nazwy przed rozpoczęciem używania go w wyrażeniach.
Chociaż w wyrażeniu można użyć numeru wiersza i kolumny w celu odwołania się do komórki, najlepszą praktyką jest nadanie komórce nazwy aliasu i użycie jej. Zobacz Właściwości komórki powyżej, jak ustawić alias. Na przykład, jeśli dane w komórce B1 zawierają parametr długości obiektu, nazwa aliasu MyObject_Length
pozwoli na odwołanie się do tej wartości jako <<MyParams>>.MyObject_Length
zamiast Spreadsheet.B1
. Oprócz tego, że nazwy aliasów są o wiele łatwiejsze do odczytania i zrozumienia, można je również o wiele łatwiej zmienić, jeśli zdecydujemy się na zmianę struktury arkusza kalkulacyjnego. Używanie aliasów ma również tę zaletę, że łatwiej jest sprawdzić, które komórki są używane do sterowania innymi częściami dokumentu. Zauważ, że FreeCAD automatycznie dostosowuje odniesienia do pozycji w wyrażeniach, jeśli wstawiasz lub usuwasz wiersze i kolumny w arkuszu kalkulacyjnym, więc nawet jeśli używasz numerów wierszy i kolumn w wyrażeniu, możesz wstawiać wiersze i kolumny bez naruszania odniesień do otaczających komórek.
Edycja arkusza kalkulacyjnego powoduje ponowne obliczenie modelu 3D, nawet jeśli wprowadzone zmiany nie mają wpływu na model. W przypadku złożonego modelu ponowne obliczanie może trwać bardzo długo, a konieczność czekania po każdej edycji jest oczywiście dość irytująca.
Oto trzy rozwiązania, jak sobie z tym poradzić:
#OCZEKIWANIE
.=NameOfFile#<<MySpreadsheet>>.MyAlias
.
W arkuszu kalkulacyjnym z wartościami komórek jest związane pojęcie wymiaru (jednostki). Liczba wprowadzona bez przypisanej jej jednostki nie ma określonego wymiaru. Jednostka powinna być wprowadzona bezpośrednio po wartości liczby, bez odstępów. Jeśli liczba ma przypisaną jednostkę, będzie ona używana we wszystkich obliczeniach. Na przykład pomnożenie dwóch długości z jednostką mm daje pole powierzchni z jednostką mm².
Jeśli komórka zawiera wartość reprezentującą wymiar, należy ją wpisać wraz z odpowiadającą jej jednostką. Chociaż w wielu prostych przypadkach można się obejść bez podawania wartości bezwymiarowej, nie należy podawać jednostki. Jeśli wartość reprezentująca wymiar zostanie wprowadzona bez powiązanej z nią jednostki, pewne sekwencje operacji powodują, że FreeCAD zgłasza niezgodność jednostek w wyrażeniu, podczas gdy wydaje się, że wyrażenie powinno być poprawne. (Można to lepiej zrozumieć, przeglądając ten wątek na forum FreeCAD).
Jednostki wyświetlane dla wartości komórki można zmienić za pomocą okna dialogowego właściwości zakładka jednostki (powyżej). Nie zmienia to wartości zawartej w komórce, a jedynie konwertuje istniejącą wartość na potrzeby wyświetlania. Wartość używana do obliczeń nie ulega zmianie, a wyniki formuł wykorzystujących tę wartość pozostają niezmienione. Na przykład komórka zawierająca wartość 5.08cm
może zostać wyświetlona jako 2cale
po zmianie wartości na karcie Jednostki na "cale".
Liczby bezwymiarowej nie można zmienić na liczbę z jednostką za pomocą okna dialogowego właściwości komórki. Można wprowadzić ciąg jednostek i zostanie on wyświetlony, ale komórka nadal będzie zawierać liczbę bezwymiarową. Aby zmienić wartość bezwymiarową na wartość z wymiarem, należy ponownie wprowadzić samą wartość wraz z przypisaną jej jednostką.
Niekiedy może być wskazane usunięcie wymiaru z wyrażenia. Można to zrobić, mnożąc przez 1 z jednostką odwrotną.
Arkusze kalkulacyjne FreeCAD mogą być importowane i eksportowane do formatu CSV, który może być również odczytywany i zapisywany przez większość innych aplikacji arkuszy kalkulacyjnych, takich jak Microsoft Excel czy LibreOffice Calc. Więcej informacji na ten temat można znaleźć na stronach Import i Eksport.
Arkusze kalkulacyjne w formacie Excel XLSX można importować za pomocą polecenia Importuj lub polecenia Otwórz. Obsługiwane są następujące funkcje:
Inne funkcje nie są importowane do arkusza kalkulacyjnego FreeCAD.
Aby zachować ustawienia strony niezbędne do drukowania, arkusze kalkulacyjne FreeCAD można drukować, wstawiając je do obiektu widok Arkusza Kalkulacyjnego.
FreeCAD sprawdza zależności cykliczne podczas ponownych obliczeń. Z założenia sprawdzanie to zatrzymuje się na poziomie obiektu arkusza kalkulacyjnego. W konsekwencji nie powinieneś mieć arkusza kalkulacyjnego zawierającego zarówno komórki, których wartości są używane do określania parametrów modelu, jak i komórki, których wartości wykorzystują dane wyjściowe z modelu. Na przykład nie można mieć komórek określających długość, szerokość i wysokość obiektu, a także innej komórki, która odwołuje się do całkowitej objętości wynikowego kształtu. Ograniczenie to można obejść, mając dwa arkusze kalkulacyjne: jeden używany jako źródło danych dla parametrów wejściowych do modelu, a drugi używany do obliczeń opartych na danych wynikowych geometrii.
Istnieje możliwość łączenia zawartości komórek z innymi komórkami arkusza kalkulacyjnego. Może to być przydatne podczas pracy z dużymi tabelami lub w celu pobrania zawartości komórki z innego arkusza kalkulacyjnego.
Aby na przykład powiązać zakres komórek A3-C4 z zakresem komórek B1-D2:
Arkusz kalkulacyjny może teraz wyglądać następująco
Za pomocą Arkuszy kalkulacyjnych można tworzyć tabele konfiguracyjne zawierające zestawy wstępnie zdefiniowanych parametrów modelu, a następnie dynamicznie zmieniać konfigurację, która ma być używana. Zobacz poradnik Tabele konfiguracji. Aby dowiedzieć się więcej na temat działania tej funkcji, zobacz ten post na forum.
import Spreadsheet
sheet = App.ActiveDocument.addObject("Spreadsheet::Sheet", "MySpreadsheet")
sheet.Label = "Dimensions"
sheet.set("A1", "10mm")
sheet.recompute()
sheet.get("A1")
sheet.setAlias("B1", "Diameter")
sheet.set("Diameter", "20mm")
sheet.recompute()
sheet.get("Diameter")
# sheet.get() results in an error if the cell is empty.
# sheet.getContents() can be used to check the cell first.
if sheet.getContents("C1"):
print(sheet.get("C1"))